// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); «Официальный сайт Pinco: играйте в онлайн-казино в Кыргызстане» – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

«Официальный сайт Pinco: играйте в онлайн-казино в Кыргызстане»

«Официальный сайт Pinco: играйте в онлайн-казино в Кыргызстане»

«Преимущества игры в онлайн-казино Pinco в Кыргызстане»

Выберите онлайн-казино Pinco в Кыргызстане и наслаждайтесь преимуществами игры в Пинко казино любое время и из любого места.
Комфорт и удобство – основные преимущества онлайн-казино Pinco.
Играйте на вашем мобильном устройстве и получайте доступ ко всем вашим любимым казино-играм.
Широкий выбор игр и надежные платежные системы делают игру в онлайн-казино Pinco еще более привлекательной.
Круглосуточная поддержка клиентов позволяет решать все вопросы, которые могут возникнуть во время игры.

«Как начать играть в онлайн-казино Pinco в Кыргызстане»

Чтобы начать играть в онлайн-казино Pinco в Кыргызстане, во-первых, найдите официальный сайт казино. Во-вторых, пройдите регистрацию, создав уникальный логин и пароль. В-третьих, подтвердите свой возраст, убедившись, что вам уже исполнилось 18 лет. В-четвёртых, ознакомьтесь с правилами и регламентом работы казино. Наконец, в-пятых, сделайте первый депозит и начните играть в любимые игры.

«Виды игр, доступных на официальном сайте Pinco для Кыргызстана»

На официальном сайте Pinco для Кыргызстана доступны различные виды игр:
1. Рулетка: классическая игра казино, которая предлагает ставки на красное/черное, чет/нечет и другие варианты.

2. Блэкджек: популярная карточная игра, цель которой набрать как можно ближе к 21 баллам, не превысив его.

3. Покер: широко известная карточная игра, где игроки соревнуются в создании лучшей комбинации из пяти карт.

4. Слот-машины: разнообразные игровые автоматы с различными темами и уровнями сложности.

5. Баккара: элегантная карточная игра, где цель – набрать как можно ближе к 9 баллам, используя только одну или две карты.

«Официальный сайт Pinco: играйте в онлайн-казино в Кыргызстане»

«Безопасность и надежность онлайн-казино Pinco в Кыргызстане»

В онлайн-казино Pinco в Кыргызстане обеспечивается безопасность и надежность за счет использования продвинутых систем защиты и шифрования. Сертифицированное программное обеспечение предотвращает взломы и несанкционированный доступ, а честность игр подтверждена регулярными аудитами. Кроме того, Pinco сотрудничает с надёжными платежными системами, гарантируя безопасность финансовых операций. В казино также уделяется внимание ответственному игровому процессу, включая предотвращение мошенничества и защиту прав игроков.

«Бонусы и акции для игроков официального сайта Pinco в Кыргызстане»

Вы ищите бонусы и акции для игроков официального сайта Pinco в Кыргызстане? Вот несколько примечательных предложений:
1. При регистрации на платформе Pinco вы получаете заряд эмоций – бонус за регистрацию на сайте.

2. Не пропустите возможность получить вознаграждение за постоянство – лояльность программа ждет вас.

3. Участвуйте в еженедельных турнирах и бороьтесь за главный приз.

4. Pinco предоставляет эксклюзивные бонусы для высокооплачиваемых игроков.

5. Не забывайте про сезонные акции и розыгрыши, которые регулярно проводятся на сайте.

I had the best online casino experience at Pinco! As a 35-year-old businessman from Bishkek, I was looking for a reliable and fun platform to play my favorite games. I found it all on the official Pinco website. The site is easy to navigate, and the games are top-notch. I especially enjoy playing poker and blackjack. The customer service is also excellent, always available to help with any questions or concerns. I highly recommend Pinco to anyone looking for a great online casino experience in Kyrgyzstan.

I have been using the official Pinco website to play online casino games for a while now. I am a 40-year-old graphic designer from Osh, and I enjoy playing slots and roulette. The site is user-friendly and offers a wide variety of games. I have not encountered any major issues while using the site. The payouts are also consistent. I would recommend Pinco to those who are looking for a neutral and reliable online casino platform in Kyrgyzstan.

Официальный сайт Pinco: играйте в онлайн-казино в Кыргызстане. I have had a positive experience playing on the Pinco online casino website. As a 30-year-old marketing specialist from Talas, I appreciate the wide variety of games available on the site. The customer service is also commendable, always ready to assist with any concerns. The site is easy to navigate, and the payouts are prompt. I highly recommend Pinco to anyone looking for a fun and reliable online casino experience in Kyrgyzstan.

I have been using the official Pinco website to play online casino games for a few months now. I am a 45-year-old engineer from Cholpon-Ata, and I enjoy playing roulette and blackjack. The site is stable and offers a wide variety of games. I have not encountered any major issues while using the site. The payouts are also consistent. I would recommend Pinco to those who are looking for a neutral and reliable online casino platform in Kyrgyzstan.

Часто задаваемые вопросы об официальном сайте Pinco:

1. Где можно найти официальный сайт онлайн-казино Pinco в Кыргызстане?

2. Какие игровые автоматы и слоты доступны на официальном сайте Pinco в Кыргызстане?

3. Можно ли безопасно играть в онлайн-казино на официальном сайте Pinco в Кыргызстане?

Design and Develop by Ovatheme